package com.relytosoft.mizar.media.analyze.api.entity.behavior;

import com.baomidou.mybatisplus.annotation.*;
import com.relytosoft.dubhe.common.core.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;


/**
 * @author lj
 * @date 2022/6/7 10:10
 */
@TableName("AY_BEHAVIOR_TASK_SON")
@ApiModel("AyBehaviorTaskSon")
public class AyBehaviorTaskSon extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键", required = true)
    @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

    /**
     * 主任务ID
     */
    @ApiModelProperty(value = "主任务ID", required = true)
    @TableField("BEHAVIOR_TASK_ID")
    private Integer behaviorTaskId;

    /**
     * 三方任务ID(对应业务引擎返回的taskId)
     */
    @ApiModelProperty(value = "三方任务ID(对应业务引擎返回的taskId)")
    @TableField("TASK_ID")
    private String taskId;

    /**
     * 三方设备ID
     */
    @ApiModelProperty(value = "三方设备ID", required = true)
    @TableField("CAMERA_ID")
    private String cameraId;

    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称", required = true)
    @TableField("CAMERA_NAME")
    private String cameraName;

    /**
     * 任务类型;1：实时任务，2：离线视频任务，3：离线文件任务
     */
    @ApiModelProperty(value = "任务类型;1：实时任务，2：离线视频任务，3：离线文件任务")
    @TableField("TYPE")
    private Integer type;

    /**
     * 占用资源（路）
     */
    @ApiModelProperty(value = "占用资源（路）")
    @TableField("LICENCE_USING")
    private Integer licenceUsing;

    /**
     * 离线视频开始时间
     */
    @ApiModelProperty(value = "离线视频开始时间")
    @TableField("BEGIN_TIME")
    private LocalDateTime beginTime;

    /**
     * 离线视频结束时间
     */
    @ApiModelProperty(value = "离线视频结束时间")
    @TableField("END_TIME")
    private LocalDateTime endTime;

    /**
     * 视频处理总时长(只有离线视频有，实时任务没有)
     */
    @ApiModelProperty(value = "视频处理总时长(只有离线视频有，实时任务没有)")
    @TableField("HANDLE_TOTAL_TIME")
    private String handleTotalTime;

    /**
     * 处理的结果有多少行人
     */
    @ApiModelProperty(value = "处理的结果有多少行人")
    @TableField("BEHAVIOR")
    private Integer behavior;

    /**
     * 进程数，即录像视频对应的拆分数
     */
    @ApiModelProperty(value = "进程数，即录像视频对应的拆分数")
    @TableField("PROGRESS")
    private Integer progress;

    /**
     * rtsp或rtmp地址
     */
    @ApiModelProperty(value = "rtsp或rtmp地址")
    @TableField("VIDEO_URL")
    private String videoUrl;

    /**
     * 通道状态：-1：未开始，1：进行中，2：已完成 3:异常
     */
    @ApiModelProperty(value = "通道状态：-1：未开始，1：进行中，2：已完成 3:异常")
    @TableField("STATUS")
    private Integer status;

    /**
     * 删除标记; 0：否，1：是
     */
    @ApiModelProperty(value = "删除标记; 0：否，1：是")
    @TableField("IS_DELETED")
    private Integer isDeleted;

    /**
     * 任务状态异常原因
     */
    @ApiModelProperty(value = "任务状态异常原因")
    @TableField("ERROR_REASON")
    private String errorReason;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("REMARK")
    private String remark;

    /**
     * 状态查询设置 1 不查询 0 查询
     */
    @ApiModelProperty(value = "状态查询设置 1 不查询 0 查询")
    @TableField("IS_SEARCH_STATUS")
    private Integer isSearchStatus;

    /**
     * 视频流压缩编码格式
     */
    @ApiModelProperty(value = "视频流压缩编码格式")
    @TableField("ENCODEFORMAT")
    private String encodeformat;

    /**
     * 视频流分辨率
     */
    @ApiModelProperty(value = "视频流分辨率")
    @TableField("RESOLUTION")
    private String resolution;

    /**
     * 行为场景
     */
    @ApiModelProperty(value = "行为场景")
    @TableField("ALGORITHMID")
    private String algorithmid;

    /**
     * 分析事件
     */
    @ApiModelProperty(value = "分析事件")
    @TableField("SUBTYPES")
    private String subtypes;

    /**
     * 0：周计划 1：日计划（周一到周日计划相同） 2：全天
     */
    @ApiModelProperty(value = "0：周计划 1：日计划（周一到周日计划相同） 2：全天")
    @TableField("PLAN_TYPE")
    private Integer planType;

    /**
     * 取值范围如下： 周计划时：1～7 日计划时：1 全天：0
     */
    @ApiModelProperty(value = "取值范围如下： 周计划时：1～7 日计划时：1 全天：0")
    @TableField(value = "PLAN_INFO_NUM", updateStrategy = FieldStrategy.IGNORED)
    private Integer planInfoNum;

    /**
     * (json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息
     */
    @ApiModelProperty(value = "(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息")
    @TableField("PLAN_INFO_LIST")
    private String planInfoList;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getBehaviorTaskId() {
        return behaviorTaskId;
    }

    public void setBehaviorTaskId(Integer behaviorTaskId) {
        this.behaviorTaskId = behaviorTaskId;
    }

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    public String getCameraId() {
        return cameraId;
    }

    public void setCameraId(String cameraId) {
        this.cameraId = cameraId;
    }

    public String getCameraName() {
        return cameraName;
    }

    public void setCameraName(String cameraName) {
        this.cameraName = cameraName;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getLicenceUsing() {
        return licenceUsing;
    }

    public void setLicenceUsing(Integer licenceUsing) {
        this.licenceUsing = licenceUsing;
    }

    public LocalDateTime getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(LocalDateTime beginTime) {
        this.beginTime = beginTime;
    }

    public LocalDateTime getEndTime() {
        return endTime;
    }

    public void setEndTime(LocalDateTime endTime) {
        this.endTime = endTime;
    }

    public String getHandleTotalTime() {
        return handleTotalTime;
    }

    public void setHandleTotalTime(String handleTotalTime) {
        this.handleTotalTime = handleTotalTime;
    }

    public Integer getBehavior() {
        return behavior;
    }

    public void setBehavior(Integer behavior) {
        this.behavior = behavior;
    }

    public Integer getProgress() {
        return progress;
    }

    public void setProgress(Integer progress) {
        this.progress = progress;
    }

    public String getVideoUrl() {
        return videoUrl;
    }

    public void setVideoUrl(String videoUrl) {
        this.videoUrl = videoUrl;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getErrorReason() {
        return errorReason;
    }

    public void setErrorReason(String errorReason) {
        this.errorReason = errorReason;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getIsSearchStatus() {
        return isSearchStatus;
    }

    public void setIsSearchStatus(Integer isSearchStatus) {
        this.isSearchStatus = isSearchStatus;
    }

    public String getEncodeformat() {
        return encodeformat;
    }

    public void setEncodeformat(String encodeformat) {
        this.encodeformat = encodeformat;
    }

    public String getResolution() {
        return resolution;
    }

    public void setResolution(String resolution) {
        this.resolution = resolution;
    }

    public String getAlgorithmid() {
        return algorithmid;
    }

    public void setAlgorithmid(String algorithmid) {
        this.algorithmid = algorithmid;
    }

    public String getSubtypes() {
        return subtypes;
    }

    public void setSubtypes(String subtypes) {
        this.subtypes = subtypes;
    }

    public Integer getPlanType() {
        return planType;
    }

    public void setPlanType(Integer planType) {
        this.planType = planType;
    }

    public Integer getPlanInfoNum() {
        return planInfoNum;
    }

    public void setPlanInfoNum(Integer planInfoNum) {
        this.planInfoNum = planInfoNum;
    }

    public String getPlanInfoList() {
        return planInfoList;
    }

    public void setPlanInfoList(String planInfoList) {
        this.planInfoList = planInfoList;
    }


    @Override
    public String toString() {
        return "AyBehaviorTaskSon{" +
                "id=" + id +
                ", behaviorTaskId=" + behaviorTaskId +
                ", taskId='" + taskId + '\'' +
                ", cameraId='" + cameraId + '\'' +
                ", cameraName='" + cameraName + '\'' +
                ", type=" + type +
                ", licenceUsing=" + licenceUsing +
                ", beginTime=" + beginTime +
                ", endTime=" + endTime +
                ", handleTotalTime='" + handleTotalTime + '\'' +
                ", behavior=" + behavior +
                ", progress=" + progress +
                ", videoUrl='" + videoUrl + '\'' +
                ", status=" + status +
                ", isDeleted=" + isDeleted +
                ", errorReason='" + errorReason + '\'' +
                ", remark='" + remark + '\'' +
                ", isSearchStatus=" + isSearchStatus +
                ", encodeformat='" + encodeformat + '\'' +
                ", resolution='" + resolution + '\'' +
                ", algorithmid='" + algorithmid + '\'' +
                ", subtypes='" + subtypes + '\'' +
                ", planType=" + planType +
                ", planInfoNum=" + planInfoNum +
                ", planInfoList='" + planInfoList + '\'' +
                ", createdId=" + createdId +
                ", createdBy='" + createdBy + '\'' +
                ", createdTime=" + createdTime +
                ", updatedId=" + updatedId +
                ", updatedBy='" + updatedBy + '\'' +
                ", updatedTime=" + updatedTime +
                '}';
    }
}